import os
import re
import sys

# 说明：
# 输出文件名，过滤@2x和@3x的干扰
#
# 使用：
# 1.脚本拖到需要的目录下或者脚本后面追加文件夹路径作为参数执行。

def print_unique_filenames(folder_path):
    # 获取脚本文件的名称以便过滤
    script_name = os.path.basename(__file__)

    # 用于存储唯一的基础文件名
    unique_names = set()

    # 遍历指定文件夹中的文件
    for filename in os.listdir(folder_path):
        # 跳过脚本自身的文件名
        if filename == script_name:
            continue

        # 使用正则表达式匹配文件名，去掉 @2x 或 @3x
        match = re.match(r'^(.*?)(@2x|@3x)?(\..+)$', filename)
        if match:
            base_name = match.group(1)
            unique_names.add(base_name)

    # 打印所有唯一的基础文件名，每行一个
    for name in sorted(unique_names):
        print(name)

if __name__ == "__main__":
    # 获取文件夹路径参数，如果没有则使用当前目录
    folder_path = sys.argv[1] if len(sys.argv) > 1 else os.getcwd()
    print_unique_filenames(folder_path)
